home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / netinet / RCS / tcp.h,v < prev    next >
Text File  |  1988-06-29  |  3KB  |  127 lines

  1. head     1.2;
  2. access   ;
  3. symbols  ;
  4. locks    ; strict;
  5. comment  @ * @;
  6.  
  7.  
  8. 1.2
  9. date     88.06.29.15.11.12;  author ouster;  state Exp;
  10. branches ;
  11. next     1.1;
  12.  
  13. 1.1
  14. date     88.06.21.11.59.29;  author ouster;  state Exp;
  15. branches ;
  16. next     ;
  17.  
  18.  
  19. desc
  20. @@
  21.  
  22.  
  23. 1.2
  24. log
  25. @Add ifdefs to keep files from being processed twice.
  26. @
  27. text
  28. @/*
  29.  * Copyright (c) 1982, 1986 Regents of the University of California.
  30.  * All rights reserved.
  31.  *
  32.  * Redistribution and use in source and binary forms are permitted
  33.  * provided that this notice is preserved and that due credit is given
  34.  * to the University of California at Berkeley. The name of the University
  35.  * may not be used to endorse or promote products derived from this
  36.  * software without specific prior written permission. This software
  37.  * is provided ``as is'' without express or implied warranty.
  38.  *
  39.  *    @@(#)tcp.h    7.4.1.1 (Berkeley) 2/7/88
  40.  */
  41.  
  42. #ifndef _TCP
  43. #define _TCP
  44.  
  45. #ifndef BYTE_ORDER
  46. /*
  47.  * Definitions for byte order,
  48.  * according to byte significance from low address to high.
  49.  */
  50. #define    LITTLE_ENDIAN    1234    /* least-significant byte first (vax) */
  51. #define    BIG_ENDIAN    4321    /* most-significant byte first (IBM, net) */
  52. #define    PDP_ENDIAN    3412    /* LSB first in word, MSW first in long (pdp) */
  53.  
  54. #ifdef vax
  55. #define    BYTE_ORDER    LITTLE_ENDIAN
  56. #else
  57. #define    BYTE_ORDER    BIG_ENDIAN    /* mc68000, tahoe, most others */
  58. #endif
  59. #endif BYTE_ORDER
  60.  
  61. typedef    u_long    tcp_seq;
  62. /*
  63.  * TCP header.
  64.  * Per RFC 793, September, 1981.
  65.  */
  66. struct tcphdr {
  67.     u_short    th_sport;        /* source port */
  68.     u_short    th_dport;        /* destination port */
  69.     tcp_seq    th_seq;            /* sequence number */
  70.     tcp_seq    th_ack;            /* acknowledgement number */
  71. #if BYTE_ORDER == LITTLE_ENDIAN
  72.     u_char    th_x2:4,        /* (unused) */
  73.         th_off:4;        /* data offset */
  74. #endif
  75. #if BYTE_ORDER == BIG_ENDIAN
  76.     u_char    th_off:4,        /* data offset */
  77.         th_x2:4;        /* (unused) */
  78. #endif
  79.     u_char    th_flags;
  80. #define    TH_FIN    0x01
  81. #define    TH_SYN    0x02
  82. #define    TH_RST    0x04
  83. #define    TH_PUSH    0x08
  84. #define    TH_ACK    0x10
  85. #define    TH_URG    0x20
  86.     u_short    th_win;            /* window */
  87.     u_short    th_sum;            /* checksum */
  88.     u_short    th_urp;            /* urgent pointer */
  89. };
  90.  
  91. #define    TCPOPT_EOL    0
  92. #define    TCPOPT_NOP    1
  93. #define    TCPOPT_MAXSEG    2
  94.  
  95. /*
  96.  * Default maximum segment size for TCP.
  97.  * With an IP MSS of 576, this is 536,
  98.  * but 512 is probably more convenient.
  99.  */
  100. #ifdef    lint
  101. #define    TCP_MSS    536
  102. #else
  103. #ifndef IP_MSS
  104. #define    IP_MSS    576
  105. #endif
  106. #define    TCP_MSS    MIN(512, IP_MSS - sizeof (struct tcpiphdr))
  107. #endif
  108.  
  109. /*
  110.  * User-settable options (used with setsockopt).
  111.  */
  112. #define    TCP_NODELAY    0x01    /* don't delay send to coalesce packets */
  113. #define    TCP_MAXSEG    0x02    /* set maximum segment size */
  114.  
  115. #endif _TCP
  116. @
  117.  
  118.  
  119. 1.1
  120. log
  121. @Initial revision
  122. @
  123. text
  124. @d14 4
  125. d87 2
  126. @
  127.